package com.wtone.platform.gat.images.gat.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Author: aiLin
 * @Date: 2020/10/13 14:35
 * @desc: 图片对象
 */
@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value="图片信息对象",description="ImageInfo对象")
public class Image {

    @ApiModelProperty(value="图像标识")
    @JsonProperty("ImageID")
    private  String ImageID;

    @ApiModelProperty(value="信息分类,人工采集还是自动采集")
    @JsonProperty("InfoKind")
    private  String InfoKind;

    @ApiModelProperty(value="图像来源")
    @JsonProperty("ImageSource")
    private  String ImageSource;

    @ApiModelProperty(value="来源视频标识,如果此图像是视频截图，此字段是来源视频 的视频 ID")
    @JsonProperty("SourceVideoID")
    private  String SourceVideoID;

    @ApiModelProperty(value="原始图像标识,图像增强处理输出图像对应的原始图像 ID，增强处理后图像必选")
    @JsonProperty("OriginImageID")
    private  String OriginImageID;

    @ApiModelProperty(value="事件分类,自动分析事件类型，设备采集必选")
    @JsonProperty("EventSort")
    private  String EventSort;

    @ApiModelProperty(value="设备编码,采集设备编码")
    @JsonProperty("DeviceID")
    private  String DeviceID;

    @ApiModelProperty(value="存储路径,图像文件的存储路径，采用 URI 命名规则")
    @JsonProperty("StoragePath")
    private  String	StoragePath;

    @ApiModelProperty(value="图像文件哈希值,使用 MD5 算法")
    @JsonProperty("FileHash")
    private  String FileHash;

    @ApiModelProperty(value="图像文件格式")
    @JsonProperty("FileFormat")
    private  String FileFormat;

    @ApiModelProperty(value="拍摄时间")
    @JsonProperty("ShotTime")
    private  String ShotTime;

    @ApiModelProperty(value="题名,图像资料名称的汉语描述")
    @JsonProperty("Title")
    private  String Title;

    @ApiModelProperty(value="题名补充,题名的补充和备注信息")
    @JsonProperty("TitleNote")
    private  String TitleNote;

    @ApiModelProperty(value="专项名,图像资料所属的专项名称")
    @JsonProperty("SpecialIName")
    private  String  SpecialIName;

    @ApiModelProperty(value="关键词,能够正确表述图像资料主要内容、具有检索 意义的词或词组")
    @JsonProperty("Keyword")
    private  String Keyword;

    @ApiModelProperty(value="内容描述,对图像内容的简要描述")
    @JsonProperty("ContentDescription")
    private  String ContentDescription;

    @ApiModelProperty(value="主题人物,图像资料内出现的主要人物的中文姓名全称， 当有多个时用英文半角分号”;”分隔")
    @JsonProperty("SubjectCharacter")
    private  String  SubjectCharacter;

    @ApiModelProperty(value="拍摄地点行政区划代码,人工采集图像才需要")
    @JsonProperty("ShotPlaceCode")
    private  String  ShotPlaceCode;

    @ApiModelProperty(value="拍摄地点区划内详细地址,具体到街道门牌号，可以由乡镇（街道）名称、街路巷名称、门（楼）牌号、门（楼详 细地址）组成")
    @JsonProperty("ShotPlaceFullAdres")
    private  String ShotPlaceFullAdres;

    @ApiModelProperty(value="拍摄地点经度")
    @JsonProperty("ShotPlaceLongitude")
    private  String ShotPlaceLongitude;

    @ApiModelProperty(value="拍摄地点纬度")
    @JsonProperty("ShotPlaceLatitude")
    private  String ShotPlaceLatitude;

    @ApiModelProperty(value="水平拍摄方向")
    @JsonProperty("HorizontalShotDirection")
    private  String HorizontalShotDirection;

    @ApiModelProperty(value="垂直拍摄方向")
    @JsonProperty("VerticalShotDirection")
    private  String VerticalShotDirection;

    @ApiModelProperty(value="密级代码,自动采集时取值为 5")
    @JsonProperty("SecurityLevel")
    private  String SecurityLevel;

    @ApiModelProperty(value="宽度,水平像素值")
    @JsonProperty("Width")
    private  String Width;

    @ApiModelProperty(value="高度,垂直像素值")
    @JsonProperty("Height")
    private  String Height;

    @ApiModelProperty(value="照相机制造商,若图像来源于照相机，则填写来源照相机的制造商")
    @JsonProperty("CameraManufacturer")
    private  String CameraManufacturer;

    @ApiModelProperty(value="若图像来源于照相机，则填写来源照相机的型号")
    @JsonProperty("CameraVersion")
    private  String CameraVersion;

    @ApiModelProperty(value="光圈值,光圈 F 值")
    @JsonProperty("ApertureValue")
    private  int ApertureValue;

    @ApiModelProperty(value="感光值,照片的 ISO 感光值")
    @JsonProperty("ISOSensitivity")
    private  int  ISOSensitivity;

    @ApiModelProperty(value="焦距,拍摄照片使用的焦距")
    @JsonProperty("FocalLength")
    private  int FocalLength;

    @ApiModelProperty(value="质量等级")
    @JsonProperty("QualityGrade")
    private  String QualityGrade;

    @ApiModelProperty(value="采集人,图像资料的采集人姓名或采集系统名称，人工采集必选")
    @JsonProperty("CollectorName")
    private  String CollectorName;

    @ApiModelProperty(value="采集单位名称,图像资料的采集单位名称，人工采集必选")
    @JsonProperty("CollectorOrg")
    private  String CollectorOrg;

    @ApiModelProperty(value="采集人证件类型,图像资料采集人的有效证件类型")
    @JsonProperty("CollectorIDType")
    private  String CollectorIDType;

    @ApiModelProperty(value="采集人证件号码,图像资料采集人的有效证件号码")
    @JsonProperty("CollectorID")
    private  String CollectorID;

    @ApiModelProperty(value="入库人,图像资料的入库人姓名或入库系统名称，人工采集必选")
    @JsonProperty("EntryClerk")
    private  String EntryClerk;

    @ApiModelProperty(value="入库单位名称,图像资料的入库单位名称，人工采集必选")
    @JsonProperty("EntryClerkOrg")
    private  String EntryClerkOrg;

    @ApiModelProperty(value="入库人证件类型,图像资料入库人的有效证件类型")
    @JsonProperty("EntryClerkIDType")
    private  String  EntryClerkIDType;

    @ApiModelProperty(value="入库人证件号码,图像资料入库人的有效证件号码")
    @JsonProperty("EntryClerkID")
    private  String EntryClerkID;

    @ApiModelProperty(value="入库时间,视图库自动生成，创建报文中不需要该字段")
    @JsonProperty("EntryTime")
    private  String EntryTime;

    @ApiModelProperty(value="图像处理标志,0：未处理，1：图像经过处理")
    @JsonProperty("ImageProcFlag")
    private  int ImageProcFlag;

    @ApiModelProperty(value="文件大小,图像文件大小，单位 byte")
    @JsonProperty("FileSize")
    private  long FileSize;

}
